package com.tange.ai.iot.client.gnssa.utils;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.wifi.WifiManager;
import android.os.Build;
import android.provider.Settings;
import android.view.View;
import android.widget.Toast;

import androidx.annotation.RequiresApi;

import com.tange.ai.iot.client.gnssa.view.popup.NormalMsgVPopup;

public class WifiUtils {

    // 检查WiFi是否启用
    public static boolean isWifiEnabled(Context context) {
        try {
            WifiManager wifiManager = (WifiManager) context.getApplicationContext()
                    .getSystemService(Context.WIFI_SERVICE);
            return wifiManager != null && wifiManager.isWifiEnabled();
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }

    // 请求开启WiFi（自动处理不同Android版本）
    public static void requestEnableWifi(final Activity activity) {
        if (isWifiEnabled(activity)) {
            return;
        }

        // Android 10及以上版本处理
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
            showAndroidQDialog(activity);
        }
        // Android 6-9版本处理
        else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            showPreQDialog(activity);
        }
        // Android 5及以下版本
        else {
            enableWifiDirectly(activity);
        }
    }

    // 直接开启WiFi（仅适用于Android 9及以下）
    private static void enableWifiDirectly(Context context) {
        try {
            WifiManager wifiManager = (WifiManager) context.getApplicationContext()
                    .getSystemService(Context.WIFI_SERVICE);
            if (wifiManager != null) {
                wifiManager.setWifiEnabled(true);
                showToast(context, "正在开启WiFi...");
            }
        } catch (SecurityException e) {
            e.printStackTrace();
            showToast(context, "权限不足，无法直接开启WiFi");
        }
    }

    // Android 10+ 处理方式
    @RequiresApi(api = Build.VERSION_CODES.Q)
    private static void showAndroidQDialog(final Activity activity) {
        NormalMsgVPopup normalMsgDialog =
                new NormalMsgVPopup(activity);
        normalMsgDialog.showPopupWindow();
        normalMsgDialog.tvTitle.setText("温馨提示");
        normalMsgDialog.tvContent.setText( "是否要开启WiFi？缩略图查看需要链接wifi热点");
        normalMsgDialog.tvCancel.setVisibility(View.VISIBLE);
        normalMsgDialog.tvCancel.setText("取消");
        normalMsgDialog.tvSure.setText("确定");
        normalMsgDialog.tvSure.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                normalMsgDialog.dismiss();
                openWifiSettings(activity);
            }
        });



//        new AlertDialog.Builder(activity)
//                .setTitle("开启WiFi")
//                .setMessage("系统限制，需要前往设置页面开启WiFi")
//                .setPositiveButton("前往设置", new DialogInterface.OnClickListener() {
//                    @Override
//                    public void onClick(DialogInterface dialog, int which) {
//                        openWifiSettings(activity);
//                    }
//                })
//                .setNegativeButton("取消", null)
//                .show();
    }

    // Android 6-9 处理方式
    private static void showPreQDialog(final Activity activity) {
        NormalMsgVPopup normalMsgDialog =
                new NormalMsgVPopup(activity);
        normalMsgDialog.showPopupWindow();
        normalMsgDialog.tvTitle.setText("温馨提示");
        normalMsgDialog.tvContent.setText( "是否要开启WiFi？缩略图查看需要链接wifi热点");
        normalMsgDialog.tvCancel.setVisibility(View.VISIBLE);
        normalMsgDialog.tvCancel.setText("取消");
        normalMsgDialog.tvSure.setText("确定");
        normalMsgDialog.tvSure.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                normalMsgDialog.dismiss();
                enableWifiDirectly(activity);
            }
        });

//        new AlertDialog.Builder(activity)
//                .setTitle("开启WiFi")
//                .setMessage("是否要开启WiFi？")
//                .setPositiveButton("直接开启", new DialogInterface.OnClickListener() {
//                    @Override
//                    public void onClick(DialogInterface dialog, int which) {
//                        enableWifiDirectly(activity);
//                    }
//                })
//                .setNeutralButton("系统设置", new DialogInterface.OnClickListener() {
//                    @Override
//                    public void onClick(DialogInterface dialog, int which) {
//                        openWifiSettings(activity);
//                    }
//                })
//                .setNegativeButton("取消", null)
//                .show();
    }

    // 打开WiFi设置页面
    private static void openWifiSettings(Activity activity) {
        try {
            Intent intent = new Intent(Settings.ACTION_WIFI_SETTINGS);
            activity.startActivity(intent);
        } catch (Exception e) {
            e.printStackTrace();
            showToast(activity, "无法打开设置页面");
        }
    }

    // 显示Toast消息
    private static void showToast(Context context, String message) {
        Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
    }
}